
********************************
■■■■
■ ■ ■ ■
■ ■■■ ■■■
■ ■ ■ ■
■■■■
〜基礎から ★ C++Programing〜
********************************
【注意】 このマガジンは、最大化してお読みください。
また、等角フォントでお読みください。
(MS ゴシックなど)
********************************
発行者 むーくん
マガジンNO. 71(5−11)
発行日 2001/2/20
講読人数 2000名ぐらい
マガジンID 0000050494
このマガジンは、まぐまぐから配信されています。
********************************
★あいさつ★
今回は、プログラムのオンパレードです。
理解しにくいかもしれないので、自分でも書いてみた方が
よいと思います。
パズルみたいなプログラムを楽しんでください。
********************************
********************************
★目次★
・いろいろなfor文
・式を2つ指定したfor文
・式を省略したfor文
・cinを指定したfor文
・まとめ
・予告
********************************
★いろいろなfor文★
今回は、いろいろなfor文のパターンとそのサンプルを紹介します。
これを見れば、なぜfor文が一番よく使われるのか分かると思います。
大変バリエーション豊かな表現ができるのです。
********************************
★式を2つ指定したfor文★
ご存じの通りfor文は、「初期化」「条件式」「更新」の
3つを指定することができます。
基本的には、1つにつき1文なのですが、「コンマ演算子( , )」で
区切ることにより、2文以上の実行が可能です。
【サンプル】
#include<iostream>
using namespace std;
int main(){
int i,j,total;
for(i=1,j=100,total=0; i<j; i++,j--){
total += (i+j);
}
cout << total << endl;
return 0;
}
【解説】
プログラムに深い意味はありません。
i j という2つの変数を使って、1〜100までの和を求めています。
i は1から大きくなっていき、j は100から小さくなっていきます。
i と j の大小関係が逆になったとき、処理は終了です。
注目してほしいのは、式の部分です。
「初期化」には3文、「更新」には2文指定しています。
読みにくく、あまりよい例ではありませんが、ときには有効です。
********************************
★式を省略したfor文★
逆に、何も書かないこともできます。
その時には、省略した部分を空にします。
但し、セミコロンは省略できません。
「初期化」などの区別ができなくなるからです。
【サンプル】
#include<iostream>
using namespace std;
int main(void){
int i, input;
int total = 0;
for(i=1; i<10; ){
cout << i << " : ";
cin >> input;
total += i;
if(input){
i++;
}
}
cout << total << endl;
return 0;
}
【解説】
ユーザーが0以外の値を入力したら、カウンタを進め、
0を入力したときは据え置くプログラムです。
ユーザーの入力により、
「1+1+2+3+3+4+5+6+7+7+7+8+9+9+9+9」
のような計算ができます。
ユーザーインターフェースについては考慮していません。
ここでは、「更新」の部分が省略されています。
これにより、自動的にインクリメントが行われません。
ちなみに前回学習したように、「条件」の部分を
省略すると「無限ループ」になります。
********************************
★cinを指定したfor文★
「初期化」などの部分に直接cinで入力することができます。
#include<iostream>
using namespace std;
int main(void){
int input;
for( ; input != 1; cin >> input){
cout << "1を入力すると終わり : ";
}
return 0;
}
【解説】
意味のないプログラムですが、他のプログラムに組み合わせて
使ってください。
1を入力するまで入力を繰り返すプログラムです。
「更新」の部分でcinを使っています。
こうすると、ループの最後に毎回入力をすることになります。
ループの最後にcinを書いて、「更新」を空にしても構いません。
このように、他と区別なく入力をすることができます。
********************************
★まとめ★
「初期化」「条件」「更新」の役割についてまとめておきます。
/////////////////////////
/ 「初期化」 ループの初めに一度だけ行う文。 /
/ /
/ 「条件」 ループの繰り返し条件 /
/ /
/ 「更新」 ループの最後に毎回行う文。 /
/////////////////////////
ということができます。
これを頭に入れておけば、通例にこだわらずに
自由にプログラミングできるでしょう。
「更新はインクリメント・・・」などと決めつけないことが大事です。
********************************
★予告★
・ループのネストについて学習します。
********************************
********************************
講読解除はこちら
http://members.tripod.co.jp/mukun_mmg/mmg/cpp.html
バックナンバーはこちら
http://members.tripod.co.jp/mukun_mmg/mmg/cpp.html
内容について質問やご意見など
smukun@hotmail.com
筆者のWebサイト(むーくんの理学的なんでも講座)
http://members.tripod.co.jp/mukun_mmg/
************************************